#include "RebotMgr.h"
#include "base/core/log.h"
#include "Character/CreatureMgr.h"

RebotMgr::RebotMgr()
{

}
RebotMgr::~RebotMgr()
{

}
bool RebotMgr::Init()
{
	//m_mapRebot.clear();

	return true;
}
void RebotMgr::Update(uint64_t tick)
{

}
bool RebotMgr::UnInit()
{

	//RebotObjMap::iterator iter = m_mapRebot.begin();
	//for (; iter != m_mapRebot.end(); iter++)
	//{
	//	g_GetCreatureMgr()->RecyleCreature(iter->second);
	//	//m_pRebotPool->FreeObj(iter->second);
	//	iter->second = nullptr;
	//}

	////delete m_pRebotPool;
	////m_pRebotPool = nullptr;

	//m_mapRebot.clear();

	return true;
}


//CRebot* RebotMgr::GetRebot(CharIDType rebotCid)
//{
//	RebotObjMap::iterator iter = m_mapRebot.find(rebotCid);
//	if (iter != m_mapRebot.end())
//		return iter->second ;
//
//	return nullptr;
//}
//
//CRebot * RebotMgr::CreateRebot(const CharacterMirrorData & stData)
//{
//	CharacterDBInfo playerInfo;
//	if (stData.has_baseinfo())
//	{
//		CharacterDBBaseInfo* pBase = playerInfo.mutable_basedata();
//		pBase->CopyFrom(stData.baseinfo());
//	}
//	if (stData.has_skills())
//	{
//		CharacterDBSkillData * pSkill = playerInfo.mutable_skilldata();
//		pSkill->CopyFrom(stData.skills());
//	}
//
//	if (stData.has_buffs())
//	{
//		CharacterBuffData * pBuff = playerInfo.mutable_buffdata();
//		pBuff->CopyFrom(stData.buffs());
//	}
//
//	if (stData.has_equips())
//	{
//		CharacterDBEquipData * pEquip = playerInfo.mutable_equipdata();
//		pEquip->CopyFrom(stData.equips());
//	}
//
//	playerInfo.set_charid(g_GetCreatureMgr()->NextId());
//	//CRebot *pPlayerMirror = m_pRebotPool->MallocObj();
//	CRebot *pPlayerMirror = dynamic_cast<CRebot*>(g_GetCreatureMgr()->MallocCreature(CREATURE_REBOT));
//	ENTER_ACCOUNT account;
//	if (!pPlayerMirror || !pPlayerMirror->Init(playerInfo, &account))
//	{
//		LogErrFmtPrint("create playermirror fail, playerid:", playerInfo.charid());
//		return nullptr;
//	}
//	m_mapRebot[playerInfo.charid()] = pPlayerMirror;
//	return pPlayerMirror;
//}
//
//CRebot * RebotMgr::CreateRebot(uint32_t rebotID)
//{
//	//读表
//	//CRebot *pRebot = m_pRebotPool->MallocObj();
//	CRebot *pRebot = dynamic_cast<CRebot*>(g_GetCreatureMgr()->MallocCreature(CREATURE_REBOT));
//	CharIDType cid = g_GetCreatureMgr()->NextId();
//	if (!pRebot || !pRebot->Init(rebotID,cid))
//	{
//		LogErrFmtPrint("create rebot fail, rebotid:", rebotID);
//		return nullptr;
//	}
//
//	m_mapRebot[cid] = pRebot;
//	return pRebot;
//}
//
//void RebotMgr::RecyleRebot(CRebot* pRebot)
//{
//	if (!pRebot)
//	{
//		return;
//	}
//	RebotObjMap::iterator iter = m_mapRebot.find(pRebot->GetCid());
//	if (iter == m_mapRebot.end())
//		return;
//
//	m_mapRebot.erase(iter);
//	if (!pRebot)
//		return;
//
//	pRebot->UnInit();
//	g_GetCreatureMgr()->RecyleCreature(pRebot);
//	//m_pRebotPool->FreeObj(pRebot);
//	pRebot = nullptr;
//}
